home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World 2002 September
/
PCWorld_2002-09_cd.bin
/
Software
/
Vyzkuste
/
httrack
/
httrack-3.20RC4.exe
/
{app}
/
src
/
configure
next >
Wrap
Text File
|
2002-05-26
|
15KB
|
601 lines
#!/bin/sh
# No, this isn't generated by autoconf
# Some parts are inspired by autoconf (Free Software Foundation), however
# And the idea is slightly the same
# Usage:
# './configure' and then 'make' and 'make install', or
# './configure --make --install'
SHELL=/bin/sh
ac_prev=
for ac_option
do
# If the previous option needs an argument, assign it.
if test -n "$ac_prev"; then
eval "$ac_prev=\$ac_option"
ac_prev=
continue
fi
case "$ac_option" in
-*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
*) ac_optarg= ;;
esac
case "$ac_option" in
--pthread | --thread) THREADS=1 ;;
--nopthread | --nothread) THREADS=0 ;;
--zlib | --gzip) ZLIB=1 ;;
--nozlib | --nogzip) ZLIB=0 ;;
--static | --noso) DYNAMIC=0
;;
--dynamic | --so) DYNAMIC=1
;;
--longlong) LONGLONG=1 ;;
--nolonglong) LONGLONG=0 ;;
--inaddrt) NODECLINADDRT=0 ;;
--noinaddrt) NODECLINADDRT=1 ;;
--ipv6) IPV6=1 ;;
--noipv6) IPV6=0 ;;
--ssl) SSL=1 ;;
--https) SSL=1 ;;
--nossl) SSL=0 ;;
--nohttps) SSL=0 ;;
--useuid) NOUID=0 ;;
--nouseuid) NOUID=1 ;;
--useftime) NOFTIME=0 ;;
--nouseftime) NOFTIME=1 ;;
--system=*) SYSTEMTYPE="$ac_optarg" ;;
--system) ac_prev=SYSTEMTYPE ;;
--debug) OTYPE="-O0 -g3"
MKTYPE="firstinfo htssystem htssystem_auto build_auto lastinfo" ;;
--make) DOMAKE=1 ;;
--install) DOINSTALL=1 ;;
--bininstall) DOINSTALL=1
NODOCINSTALL=1
;;
--docinstall) DOINSTALL=1
DOCINSTALL=1
;;
--cls)
cd ..
chmod 'u=rw,go=r' `find ./ -type f`
chmod 'u=rwx,go=rx' `find ./ -type d`
chmod 'u=rwx,go=rx' ./src/configure
chmod 'u=rwx,go=rx' ./src/strip_cr.in
chmod 'u=rwx,go=rx' ./src/postinst-config.in
cd src
strip_cr *.c *.h
rm -f ./httrack 2>/dev/null
exit
;;
-prefix | --prefix | --prefi | --pref | --pre | --pr)
ac_prev=PREFIX ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=*)
PREFIX="$ac_optarg" ;;
-bindir | --bindir | --bindi | --bind | --bin | --bi)
ac_prev=BINPATH ;;
-bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
BINPATH="$ac_optarg" ;;
-etcdir | --etcdir | --etcdi | --etcd | --etc | --et)
ac_prev=ETCPATH ;;
-etcdir=* | --etcdir=* | --etcdi=* | --etcd=* | --etc=* | --et=*)
ETCPATH="$ac_optarg" ;;
-libdir | --libdir | --libdi | --libd | --lib | --li)
ac_prev=LIBPATH ;;
-libdir=* | --libdir=* | --libdi=* | --libd=* | --lib=* | --li=*)
LIBPATH="$ac_optarg" ;;
--help)
cat <<EOF
--prefix=.. : prefix (/usr)
--bindir=.. : binary dir (/usr/bin)
--etcdir=.. : config dir (/usr/etc or /etc)
--libdir=.. : library dir (/usr/lib)
--dynamic : do use dynamic (.so) mode
--static : do use static mode
--nopthread : do not use threads (pthread.h)
--pthread : do use threads (pthread.h)
--noipv6 : do not use ipv6 extensions
--ipv6 : do use ipv6 extensions
--nohttps : do not use SSL extensions
--https : do use SSL extensions
--nozlib : do not use compression (zlib)
--zlib : do use compression (zlib)
--nolonglong : do not use 64-bit int
--longlong : do use 64-bit int
--noinaddrt : do not redeclare in_addr_t
--inaddrt : do redeclare in_addr_t
--nouseuid : do not use setuid()/setgid()
--useuid : do use setuid()/setgid()
--nouseftime : do not use ftime()
--useftime : do use ftime()
--system=<type> : override system type (uname) - NOT RECOMMENDED! (types: 'Default','Linux','SunOS','AIX')
--make : 'make' after configure
--install : 'make install' after configure
--bininstall : 'make bininstall' after configure
--docinstall : 'make docinstall' after configure
--debug : add debug information (for gdb)
EOF
exit
;;
*) echo "Unrecognized option: $ac_option"
exit
;;
esac
done
echo "Welcome to HTTrack Website Copier!"
echo "Type in ./configure --help for more details"
echo "If this script fails, you can enter supplemental options through '--option=value'"
echo "or enter in manual make, through 'make help'"
echo ""
if cp -f Makefile.in Makefile; then
SEDEXEC=
# System (OS) type?
printf "Checking for OS type.. "
if test -z "$SYSTEMTYPE"; then
SYSTEMTYPE="`uname`"
fi
case "$SYSTEMTYPE" in
SunOS) printf "SunOS/Solaris\n";
PLATFORM=0
SOLSOCK=1
;;
AIX) printf "AIX\n"; PLATFORM=2 ;;
*) printf "Linux type\n"; PLATFORM=3 ;;
esac
WTYPE="-Wall -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wpointer-arith -Wnested-externs"
if test -z "$OTYPE"; then
OTYPE="-O3"
fi
if test -z "$MKTYPE"; then
MKTYPE="firstinfo htssystem htssystem_auto build_auto strip clean lastinfo"
fi
# Root group
if test -z "$ROOTGROUP"; then
printf "Checking for 'root' group.."
if egrep "^root:" /etc/group >/dev/null; then
ROOTGROUP="root"
elif egrep "^wheel:" /etc/group >/dev/null; then
ROOTGROUP="wheel"
fi
printf "$ROOTGROUP\n"
else
echo "Overriding ROOTGROUP=$ROOTGROUP"
fi
# Binaries location
if test -z "$BINPATH"; then
printf "Checking for bin directory.. "
if test -n "$PREFIX"; then
BINPATH="$PREFIX/bin"
elif test -d "/usr/bin"; then
BINPATH="/usr/bin"
else
BINPATH="/bin"
fi
printf "$BINPATH\n"
else
echo "Overriding BINPATH=$BINPATH"
fi
# shlib?
if test -d "/usr/shlib"; then
SYSLIB=/usr/shlib
else
SYSLIB=/usr/lib
fi
# /etc location
if test -z "$ETCPATH"; then
printf "Checking for etc directory.. "
if test -n "$PREFIX"; then
ETCPATH="$PREFIX/etc"
elif test -d "/usr/etc"; then
ETCPATH="/usr/etc"
else
ETCPATH="/etc"
fi
printf "$ETCPATH\n"
else
echo "Overriding ETCPATH=$ETCPATH"
fi
# /usr/lib location
if test -z "$LIBPATH"; then
printf "Checking for lib directory.. "
if test -n "$PREFIX"; then
LIBPATH="$PREFIX/lib"
elif test -d "/usr/lib"; then
LIBPATH="/usr/lib"
elif test -d "/usr/local/lib"; then
LIBPATH="/usr/local/lib"
else
LIBPATH="/lib"
fi
printf "$LIBPATH\n"
else
echo "Overriding LIBPATH=$LIBPATH"
fi
# Prefix location
if test -z "$PREFIX"; then
printf "Checking for prefix directory.. "
PREFIX="/usr"
printf "$PREFIX\n"
else
echo "Overriding PREFIX=$PREFIX"
fi
# 64-bit (long long) cause some troubles to some processors
# because some alignements aren't properly defined
# we only accept 64-bit on tested processors here
if test -z "$LONGLONG"; then
printf "Checking for long long.. "
LONGLONG=
if grep "long long" /usr/include/sys/types.h >/dev/null; then
if uname -a|egrep ' i[3-9]86 ' >/dev/null; then
LONGLONG=1
fi
fi
if test -n "$LONGLONG"; then
printf "supported\n"
else
printf "not tested/supported. Use --LONGLONG=1 to override\n"
fi
else
echo "Overriding LONGLONG=$LONGLONG"
fi
# IPV6?
# NOT TESTED FOR OTHER PLATFORMS.. FIXME!
if test -z "$IPV6"; then
printf "Checking for ipv6 support.. "
if test -f "/usr/include/linux/in6.h" -o -f "/usr/local/include/linux/in6.h"; then
IPV6=1
else
IPV6=0
fi
if test "$IPV6" -eq 1; then
printf "supported\n"
else
printf "not supported\n"
fi
else
echo "Overriding IPV6=$IPV6"
fi
if test "$IPV6" -eq 1; then
IPTYPE="-DINET6"
LIPTYPE=""
else
IPTYPE=
LIPTYPE=
fi
# HTTPS?
# NOT TESTED FOR OTHER PLATFORMS.. FIXME!
if test -z "$SSL"; then
printf "Checking for SSL support.. "
if test -f "/usr/include/openssl/ssl.h" -o -f "/usr/local/include/openssl/ssl.h"; then
SSL=1
else
SSL=0
fi
if test "$SSL" -eq 1; then
printf "supported\n"
else
printf "not supported\n"
fi
else
echo "Overriding SSL=$SSL"
fi
if test "$SSL" -eq 1; then
SSTYPE="-lssl -lcrypto"
else
SSTYPE=
fi
# Alignement
if test -z "$PTRALIGN"; then
printf "Checking for pointer alignements.. "
PTRALIGN=
if test `uname -p` = "alpha" -o `uname -p` = "sparc"; then
PTRALIGN=8
else
PTRALIGN=4
fi
fi
printf "$PTRALIGN\n"
# Dynamic (.so) module?
if test -z "$DYNAMIC"; then
DYNAMIC=1
fi
printf "Checking for compilation mode: "
if test "$DYNAMIC" -eq "1"; then
echo "dynamic"
SOTYPE=-fPIC
else
echo "static"
SOTYPE=
fi
# Do we not have to redeclare in_addr_t ?
# Sometimes this type is defined, or not..
if test -z "$NODECLINADDRT"; then
printf "Checking for in_addr_t declaration in /usr/include/arpa/inet.h.. "
if grep "in_addr_t" /usr/include/arpa/inet.h >/dev/null; then
printf "found, do not redeclare\n"
NODECLINADDRT=1
else
printf "not found, declaring\n"
NODECLINADDRT=
fi
else
echo "Overriding NODECLINADDRT=$NODECLINADDRT"
fi
# Test if we can use zlib (/usr/lib/libz.so)
# This allow to speed up transfers using HTTP compression
if test -z "$ZLIB"; then
printf "Checking for ${SYSLIB}/libz.so.. "
if test -f "${SYSLIB}/libz.so"; then
printf "found\n"
ZLIB=1
else
printf "library not found (too bad), no http compression will be available\n"
ZLIB=0
fi
else
echo "Overriding ZLIB=$ZLIB"
fi
# Sometimes, pthread.h doesn't exists on some systems
# This is sad, because it speeds up some useful things, like DNS or ftp
if test -z "$THREADS"; then
printf "Checking for /usr/include/pthread.h.. "
if test -f "/usr/include/pthread.h" -o -f "/usr/local/include/pthread.h"; then
if test -f "${SYSLIB}/libpthread.so"; then
printf "found\n"
THREADS=1
else
printf "library not found (too bad), no threads will be available\n"
THREADS=
fi
else
printf "not found, no threads will be available\n"
THREADS=
fi
else
echo "Overriding THREADS=$THREADS"
fi
# Sometimes, setuid and setgid can't be used (missing pwd.h and unistd.h ?!)
if test -z "$NOUID"; then
NOUID=1
printf "Checking for /usr/include/pwd.h and /usr/include/unistd.h.. "
if test -f "/usr/include/pwd.h" -o "/usr/local/include/pwd.h"; then
if test -f "/usr/include/unistd.h" -o -f "/usr/local/include/unistd.h" ; then
NOUID=
fi
fi
if test -z "$NOUID"; then
printf "found\n"
else
printf "not found, not using setuid() and setgid()\n"
fi
else
echo "Overriding NOUID=$NOUID"
fi
# Sometimes, ftime can't be used (missing declaration...)
if test -z "$NOFTIME"; then
NOFTIME=1
printf "Checking for ftime in /usr/include/sys/timeb.h.. "
if grep "int ftime" /usr/include/sys/timeb.h >/dev/null; then
NOFTIME=
fi
if test -z "$NOFTIME"; then
printf "found\n"
else
printf "not found (too bad), not using ftime()\n"
fi
else
echo "Overriding NOFTIME=$NOFTIME"
fi
# Test variables
if test "$NOUID" = 1; then
SEDEXEC="$SEDEXEC | sed -e 's/__DEFINEUID__/HTS_DO_NOT_USE_UID/'"
fi
if test "$NOFTIME" = 1; then
SEDEXEC="$SEDEXEC | sed -e 's/__DEFINEFTI__/HTS_DO_NOT_USE_FTIME/'"
fi
if test "$NODECLINADDRT" = 1; then
SEDEXEC="$SEDEXEC | sed -e 's/__DEFINEINA__/HTS_DO_NOT_REDEFINE_in_addr_t/'"
fi
if test "$THREADS" = 1; then
THTYPE="-D_REENTRANT"
LPTHTYPE="-lpthread"
else
THTYPE=
LPTHTYPE=
fi
SEDEXEC="$SEDEXEC | sed -e \"s/__CFLAGS__/$SOTYPE $OTYPE $WTYPE $IPTYPE $THTYPE/g\""
SEDEXEC="$SEDEXEC | sed -e \"s/__LFLAGS__/$LPTHTYPE $SSTYPE $LIPTYPE/g\""
if test ! "$THREADS" = 1; then
SEDEXEC="$SEDEXEC | sed -e 's/__DEFINEPTH__/HTS_DO_NOT_USE_PTHREAD/'"
fi
if test "$ZLIB" = 1; then
SEDEXEC="$SEDEXEC | sed -e 's/__LFLAGS3__/-lz/g'"
else
SEDEXEC="$SEDEXEC | sed -e 's/__LFLAGS3__//g'"
fi
SEDEXEC="$SEDEXEC | sed -e \"s/__ZLIB__/$ZLIB/\""
if test "$SOLSOCK" = 1; then
SEDEXEC="$SEDEXEC | sed -e 's/__LFLAGS2__/-lnsl -lsocket/g'"
else
SEDEXEC="$SEDEXEC | sed -e 's/__LFLAGS2__//g'"
fi
if test ! "$LONGLONG" = 1; then
SEDEXEC="$SEDEXEC | sed -e 's/__DEFINE64B__/HTS_NO_64_BIT/'"
fi
if test -n "$PTRALIGN"; then
SEDEXEC="$SEDEXEC | sed -e \"s/__PTRALIGN__/$PTRALIGN/g\""
fi
if test -n "$IPV6"; then
SEDEXEC="$SEDEXEC | sed -e \"s/__INET6__/$IPV6/g\""
fi
if test -n "$SSL"; then
SEDEXEC="$SEDEXEC | sed -e \"s/__SSL__/$SSL/g\""
fi
if test "$DYNAMIC" = 1; then
SEDEXEC="$SEDEXEC | sed -e 's/__DYNAMIC__/so/'"
SEDEXEC="$SEDEXEC | sed -e 's/__INSTALL__/bininstall libinstall docinstall config/'"
SEDEXEC="$SEDEXEC | sed -e 's/__UNINSTALL__/binremove libremove docremove/'"
else
SEDEXEC="$SEDEXEC | sed -e 's/__DYNAMIC__//'"
SEDEXEC="$SEDEXEC | sed -e 's/__INSTALL__/bininstall docinstall config/'"
SEDEXEC="$SEDEXEC | sed -e 's/__UNINSTALL__/binremove docremove/'"
fi
SEDEXEC="$SEDEXEC | sed -e \"s/__PLATFORM__/$PLATFORM/g\""
SEDEXEC="$SEDEXEC | sed -e 's/#__AUTONAME__/AUTONAME = auto/'"
SEDEXEC="$SEDEXEC | sed -e 's/#define __DEFINE.*__//g'"
# Paths
TMP=`echo $BINPATH | sed -e 's/\\//\\\\\\//g'`
SEDEXEC="$SEDEXEC | sed -e \"s/__BINPATH__/$TMP/g\""
TMP=`echo $ETCPATH | sed -e 's/\\//\\\\\\//g'`
SEDEXEC="$SEDEXEC | sed -e \"s/__ETCPATH__/$TMP/g\""
TMP=`echo $LIBPATH | sed -e 's/\\//\\\\\\//g'`
SEDEXEC="$SEDEXEC | sed -e \"s/__LIBPATH__/$TMP/g\""
TMP=`echo $PREFIX | sed -e 's/\\//\\\\\\//g'`
SEDEXEC="$SEDEXEC | sed -e \"s/__PREFIX__/$TMP/g\""
TMP=`echo $ROOTGROUP | sed -e 's/\\//\\\\\\//g'`
SEDEXEC="$SEDEXEC | sed -e \"s/__ROOTGROUP__/$TMP/g\""
TMP=`echo $PREFIX | sed -e 's/\\//\\\\\\//g'`
SEDEXEC="$SEDEXEC | sed -e \"s/__DEFINEPRE__/$TMP/g\""
SEDEXEC="$SEDEXEC | sed -e 's/__MAKEAUTO__/$MKTYPE/'"
# Search for gmake
printf "Checking for make.. "
MAKEPATH=
if test -f "/usr/bin/gmake"; then
MAKEPATH=/usr/bin/gmake
else
if test -f "/bin/gmake"; then
MAKEPATH=/bin/gmake
else
if test -f "/usr/local/bin/gmake"; then
MAKEPATH=/usr/local/bin/gmake
fi
fi
fi
if test -n "$MAKEPATH"; then
printf "found $MAKEPATH\n"
else
MAKEPATH=make
printf "not found, assume make will work\n"
fi
# Sed strip_cr
printf "Checking for perl.. "
PERLPATH=
cp -f strip_cr.in strip_cr
if test -f "/usr/bin/perl"; then
PERLPATH=/usr/bin/perl
else
if test -f "/bin/perl"; then
PERLPATH=/bin/perl
else
if test -f "/usr/local/bin/perl"; then
PERLPATH=/usr/local/bin/perl
fi
fi
fi
if test -n "$PERLPATH"; then
printf "found $PERLPATH\nEnsuring that *.c/*.h source files don't contains CR (^M).. "
TMP=`echo $PERLPATH | sed -e 's/\\//\\\\\\//g'`
cat strip_cr | sed -e "s/__PERL__/$TMP/" > __tmp; mv __tmp strip_cr
chmod 700 strip_cr
./strip_cr *.c *.h
printf "done\n"
fi
# Sed postinst-config
cp -f postinst-config.in postinst-config
CMD="cat postinst-config $SEDEXEC > __tmp; mv __tmp postinst-config"
if eval $CMD; then
chmod 700 postinst-config
else
echo "Error while seding postinst-config"
exit 1
fi
# Sed all __VARS__
CMD="cat Makefile $SEDEXEC > __tmp; mv __tmp Makefile"
echo "Command: $CMD"
if eval $CMD; then
echo ""
echo "Makefile created!"
echo "Type in '$MAKEPATH' to build and '$MAKEPATH install' to install"
if test -n "$DOMAKE"; then
echo "Making.."
eval $MAKEPATH clean
eval $MAKEPATH
fi
if test -n "$DOINSTALL"; then
if test -n "$NODOCINSTALL"; then
echo "Installing binary.."
eval $MAKEPATH bininstall
elif test -n "$DOCINSTALL"; then
echo "Installing docs.."
eval $MAKEPATH docinstall
else
echo "Installing.."
eval $MAKEPATH install
fi
fi
else
echo "Error while seding Makefile.."
exit 1
fi
else
echo "Error copying Makefile.in -> Makefile.. giving up"
exit 1
fi